package email

import (
	"github.com/go-gomail/gomail"
)

//type EmailParam struct {
//	ServerHost string //  邮箱服务器地址，如腾讯企业邮箱为smtp.exmail.qq.com
//	ServerPort int    //  邮箱服务器端口，如腾讯企业邮箱为465
//	FromEmail  string //  发件人邮箱地址
//	FromPasswd string //  发件人邮箱密码（注意，这里是明文形式）
//	Toers      string //  接收者邮件，如有多个，则以英文逗号(“,”)隔开，不能为空
//	CCers      string //  抄送者邮件，如有多个，则以英文逗号(“,”)隔开，可以为空
//}

var m *gomail.Message

// 使用gomail发送邮件
func SendEmailByGomail(subject string, recipient string, body string) error {

	//recipient := emailServerConfig.Recipient
	//if len(recipient) == 0 {
	//	return nil
	//}

	//var recpts []string
	serverHost := emailServerConfig.Host
	serverPort := emailServerConfig.Port
	senderEmail := emailServerConfig.Sender.Account
	senderPasswd := emailServerConfig.Sender.Password
	//sender := emailServerConfig.Sender.Name

	m = gomail.NewMessage()

	//for _, tmp := range recipient {
	//	recpts = append(recpts, strings.TrimSpace(tmp.Account))
	//}

	m.SetHeader("To", recipient)

	//抄送
	//if len(ep.CCers) != 0 {
	//	for _, tmp := range strings.Split(ep.CCers, ",") {
	//		toers = append(toers, strings.TrimSpace(tmp))
	//	}
	//	m.SetHeader("Cc", toers...)
	//}

	// 发件人
	// 第三个参数为发件人别名，如"李大锤"，可以为空（此时则为邮箱名称）
	m.SetAddressHeader("From", senderEmail, "Weather Service<"+senderEmail+">")

	// 主题
	m.SetHeader("Subject", subject)

	// 正文
	m.SetBody("text/html", body)

	d := gomail.NewDialer(serverHost, serverPort, senderEmail, senderPasswd)
	// 发送
	err := d.DialAndSend(m)
	if err != nil {
		//zap.L().Error("gomail发送邮件失败", zap.Error(err))
		return err
		//panic(err)
	}
	return nil
}
